There are basically two types of systems available to a user in need of processing resources, shared and dedicated systems, each having its own particular advantages. Shared systems offer the user low start-up cost and no support obligations. Dedicated systems offer the user a fixed size resource so he need not compete with a large user community in order to gain access to the processing resource. Neither system offers the advantages of the other.
A dedicated computing system has certain advantages that include user control over response time. A user may, for example, select a system "size" that assures a minimum response time for certain processes. Additionally, the user of a dedicated system may allocate resources to others in a manner that precludes interference with his own use. In general, user control over a processing environment is characterized by three features:
1. Insulation--The degree of independence from the effects of other users on the system. PA1 2. Tunability--the ability to control the rate of execution of a particular process. PA1 3. Predictability--the ability to estimate the response time of a particular process within a usefully narrow range.
In a time-shared computing system a number of priority schemes have arisen whereby a degree of control over the distribution of resources has been achieved. In one known technique priority is granted in accordance with the length of time a user has been waiting, vis-a-vis other users. In another known technique priority is granted to the user having the shortest anticipated run time.
In U.S. Pat. No. 4,096,571 issued to J. E. Vander Mey on June 20, 1978, there is disclosed a "System for Resolving Memory Access Conflicts Among Processors and Minimizing Processor Waiting Times for Access to Memory by Comparing Waiting Times and Breaking Ties by an Arbitrary Priority Ranking." This patent seeks to minimize the maximum processor's waiting time by precluding any processor from reaching the memory twice before another, that has in the meantime requested it, reaches it once.
In the time-shared environment individual programs, or user processes, are not normally run to completion before another user process is run. Each user process is completed through a series of steps or processing bursts. System processes are usually assigned a higher priority than any user process. In a time-shared system described in the Bell System Technical Journal, July-August 1978, Volume 57, Number 6, Part 2, Pages 1935-37, resources are distributed among individual users on a substantially equal basis. "User process priorities are assigned by an algorithm based on a recent ratio of the amount of compute time to real time consumed by the process. A process that has used a lot of compute time in the last real time unit is assigned a low user priority." Priority, therefore, varies in accordance with use thereby providing a desirable negative feedback effect.
From the system's point of view, the challenge is to distribute control to users while maintaining economic viability. One solution is to provide to the user a dedicated system. The larger the user's operation, the more this makes sense. Smaller users, however, will need the economic advantages of a shared system.
It is, therefore, an object of this invention to provide small users of a time-shared processing system with the advantages of a dedicated processing system.
It is another object of this invention to provide all users with a degree of control over such characteristics as insulation, tunability and predictability in the time-shared processing environment.